1. Field of the Invention
This invention relates to computers, and more particularly to computer systems and networks which access a document and present the document to a user.
2. Description of Related Art
Relatively small computing devices and/or communication devices are becoming increasingly common. Examples of such relatively small devices include palmtop computers, handheld computers, and wireless communication devices such as cellular telephones. Such relatively small devices may not have display devices, or the display devices may be relatively small. Such relatively small devices may also have limited memory and/or processing capability.
The World Wide Web, known simply as the xe2x80x9cWebxe2x80x9d, is a network of Internet servers that provide specially formatted electronic documents to various xe2x80x9cclientxe2x80x9d machines. Web servers currently support documents formatted in a text-based markup language called hypertext markup language (HTML).
In order to provide Web access to xe2x80x9cclient machinesxe2x80x9d with limited capabilities (e.g., palmtop or handheld computers), a xe2x80x9ctranscoder proxyxe2x80x9d is typically positioned between the client machine and an Internet server. The transcoder proxy may, for example, provide selected portions of a requested Web document to the client machine based upon the capabilities of the client machine. In doing so, the transcoder proxy may translate one or more selected portions of the Web document from one digital format to another.
FIG. 1 is a block diagram of a system 10 currently used to provide an electronic document 12 to a client machine 14. Electronic document 12 may be, for example, a Web page or an interactive application program (e.g., an electronic form to be filled out by a user in order to obtain user information). System 10 includes an internet server 16 and a transcoder proxy 18 interposed between client machine 14 and internet server 16. Transcoder proxy 18 forwards a request for document 12 from client machine 14 to internet server 16. Such a request typically includes a uniform resource locator (URL) of document 12 specifying the internet protocol (IP) address of document 12 and the name of the file containing document 12.
Internet server 16 fetches document 12 and provides document 12 to transcoder proxy 18. Transcoder proxy 18 translates document 12 from one digital format (e.g., hypertext markup language or HTML) to a script written in a scripting language understood by a Web browser application program running within client machine 14. The Web browser program may use information conveyed by the script to display document 12 upon a display device of client machine 14. Alternately, the Web browser program may use information conveyed by the script to output the contents of document 12 as speech through a speaker of client machine 14.
A problem arises when client machine 14 has limited memory, processing capability, and/or display capability, and document 12 is large enough to exceed one or more of the limited capabilities of client machine 14. Client machine 14 may be, for example, a palmtop or handheld computer with limited memory, processing capability, and/or display capability. Much effort is being expended to develop methods for transforming or adapting the content of large documents to the capabilities of limited client machines 14. Known content transformation methods include displaying short text descriptions in place of images, converting images to links, converting tables to bulleted lists, removing features not supported by a device (e.g., JAVASCRIPT(trademark) applets), removing references to image types not supported by a device, converting joint photographic experts group (JPEG) images to graphics interchange format (GIF) images for devices supporting only GIF images, transcoding GIF and JPEG images by reducing scale and/or color level, and summarizing text elements.
It would be desirable to have a system and method for delivering an electronic document 12 (e.g., a Web page) to a client machine 14 based upon a structure of document 12 and/or the capabilities of client machine 14.
Several different methods for presenting (e.g., displaying) a hierarchical structure are presented. The hierarchical structure includes multiple elements, and defines hierarchical relationships between the elements. The hierarchical structure may be embodied within an electronic document such as a Web document, an interactive application program, or a map divided into sections. Each element has a xe2x80x9cpresentation propertyxe2x80x9d which may be a value or a function. A single one of the elements has xe2x80x9cfocusxe2x80x9d (e.g., in accordance with the coding of the document by an author, by default, etc.).
A first embodiment of a xe2x80x9cview depthxe2x80x9d method for presenting the hierarchical structure includes forming a model (e.g., a tree structure) of the hierarchical structure. The model includes multiple levels ranked with respect to one another, multiple nodes, and at least one branch. Each node represents a single one of the elements. One of the nodes is a root node and occupies a highest level in the hierarchical structure. A given branch connects a first node in a first level to a second node in a level directly below the first level. Each branch represents a hierarchical relationship between the nodes connected by the branch.
The term xe2x80x9cfocus nodexe2x80x9d is used to describe the node representing the element receiving focus. The presentation property of each element represented by a node in the same level of the model as the focus node is presented. The presentation property of each element represented by a node in a selected number of levels higher than the level of the focus node may also be presented. Further, the presentation property of each element represented by a node in a selected number of levels lower than the level of the focus node may also be presented.
An embodiment of an electronic document delivery system is described including a client machine coupled to (i.e., in wired or wireless communication with) a transcoder proxy. The client machine may be, for example, a palmtop or handheld computer or a wireless communication device with limited memory and/or processing capability. The transcoder proxy is coupled to receive electronic documents. Each electronic document includes one or more elements, and is expressed in a first digital format (e.g., a text-based markup language such as HTML or extensible markup language, XML).
A second embodiment of the view depth method, which may be embodied within the transcoder proxy, includes receiving the hierarchical structure (e.g., as an electronic document) expressed in the first digital format (e.g., a text-based markup language such as HTML or extensible markup langauge/XML). A tree model of the hierarchical structure is formed as described above. The tree model is used to produce an xe2x80x9coriginalxe2x80x9d script expressed in a second digital format (e.g., a scripting language). The original script includes the presentation properties of the elements represented by nodes in: (i) the same level as an xe2x80x9coriginalxe2x80x9d focus node, and (ii) a selected number of levels higher than the level of the original focus node. The original script is then provided (e.g., to the client machine).
The method may also include receiving an event, wherein the event signals a change in the element having focus. In response to the event, the tree model may be used to produce a new script expressed in the second digital format. The new script includes the presentation properties of the elements represented by nodes in: (i) the same level as a xe2x80x9cnewxe2x80x9d focus node, and (ii) a selected number of levels higher than the level of the new focus node. The new script is then provided (e.g., to the client machine).
A third embodiment of the view depth method, which may be embodied within the client machine, includes receiving the original script derived from the tree model of the hierarchical structure as described above. The presentation properties within the original script are presented. The third method may also include generating an event in response to user input, wherein the event signals a change in the element having focus. The event may be provided (e.g., to the transcoder proxy). The new script, expressed in the second digital format and derived from the tree model as described above, may be received (e.g., from the transcoder proxy). The presentation properties within the new script may be presented.
A branch isolation method for presenting the hierarchical structure is also described. The view depth and branch isolation methods may be combined. One embodiment of the combination includes accessing the hierarchical structure and forming the model of the hierarchical structure as described above. A first portion of the model is selected according to the view depth method, including: (i) nodes in the same level as the focus node, and (ii) nodes in a selected number of levels higher than the level of the focus node. A second portion of the model is selected according to the branch isolation method, including: (i) nodes along a path from the root node to the focus node, and (ii) nodes in a level lower than the level of the focus node and coupled to the focus node by one or more branches. The presentation properties of elements represented by nodes within both the first and second portions of the model are presented. Where the root node is within both the first and second portions of the model, the presentation property of the element represented by the root node may be selectively presented.
Two embodiments of a computer system employing the view depth and/or branch isolation methods for presenting a hierarchical structure are described. Both embodiments of the computer system include a host application coupled to a client application. The host application and the client application may be separate software programs being executed (i.e., running) simultaneously within the computer system. The host application may be, for example, a Web browser. The client application may be, for example, an assistive technology interface. In both embodiments, the computer system includes a hierarchical structure as described above. In other embodiments, the hierarchical structure may be external to the computer system, and the host application may be coupled to access the hierarchical structure.
The host application is coupled to the hierarchical structure, and accesses the hierarchical structure. The host application forms a tree model (i.e., a tree) of the hierarchical structure. In a first embodiment of the computer system, the tree resides within the host application. The tree includes nodes and branches as described above.
In order to display a portion of the hierarchical structure, the client application accesses the tree within the host application. The client application may embody the view depth method described above. In this case, the set of presentation properties includes the presentation properties of all elements represented by nodes in the same level as the focus node. The set of presentation properties may also include the presentation properties of all elements represented by nodes in a selected number of levels higher than the level of the focus node. The set of presentation properties may also include the presentation properties of all elements represented by nodes in a selected number of levels lower than the level of the focus node. The client application may also embody a combination of the view depth and branch isolation methods described above.
The client application provides the set of presentation properties to a user agent of the computer system. The client application may function as an interface between the host application and the user agent. The user agent may function as an interface between the client application and an output device of the computer system. The output device may be, for example, a Braille display or a text-to-speech converter. The Braille display may be the output device of choice for a visually challenged user (e.g., a user with a permanent or temporary visual impairment). The user agent may also function as an interface between the client application and an input device of the computer system. The input device may be, for example, a speech-to-text converter. The speech-to-text converter may, for example, be the input device of choice for a physically challenged user (e.g., a permanently or temporarily disabled user who cannot operate a conventional input device such as a mouse or a keyboard due to a disability). The user agent uses the set of presentation properties to produce output commands, and provides the output commands to the output device. As a result, the portion of the hierarchical structure is displayed or otherwise presented by the output device.
In the second embodiment of the computer system, the tree resides within the client application. The client application accesses the hierarchical structure via the host application, and forms the tree. The client application accesses the tree to form a set of presentation properties as described above, and provides the set of presentation properties to the user agent.